FireBird - vratenie cisla s decimalseparator ","
Otázka od: Roland Turcan
14. 12. 2002 23:14
Hello Delphi CZ konferencia!
Ako by som dostal zo selectu cislo ktore by bolo formatovane s decimal
separatorom "," a nie ako to on vrati ".". Ide mi o to ze potrebujem
aby mi ulozena procedure vratila jeden dlhy text, ktory je pokladany z
roznych fieldov roznych typov ale ciselne by som potreboval formatovat
na "12345,12 Sk".
Uvazujem o UDF s vyuzitim formatu, ale to by som chcel pouzit len ako
vychodisko z nudze.
PS: DisplayFormat mi neriesi problem.
--
Best regards, TRoland
http://www.rotursoft.sk
Odpovedá: Petr Palicka
16. 12. 2002 11:44
ahoj,
obavam se, ze asi nijak (krom treba te UDF), protoze standart
SQL definuje jako desetinny oddelovac "." a to vzdy, bez ohledu
na locale. ma to svoji logiku, protoze, jak jinak bys dostal cislo
s carkou treba do insertu? no mozna jako literal, tedy "1251,24"
zadat vcetne uvozovovek (a opacne dostat to ve stringu). no to je
to k cemu si budes muset napsat vhodnou UDFku, pokud podobnou
nekde nenajdes. leda:
SELECT
INT(MojeCislo) || ',' || FRAC(MojeCislo)
FROM
MojeTabulka
pricemz predpokladam pouziti dodanych UDF funkci INT a FRAC.
krom toho bude mozna nutne pouzit:
CAST(INT(MojeCislo) as VARCHAR(10)) || ',' ||
CAST(FRAC(MojeCislo) as VARCHAR(10))
no a cely to muzes hodit jako COMPUTE BY sloupec, takze ho
pak budes moci selectit primo. jen INSERT / UPDATE na nej nepujde
a nepujde zrejme scitat, sumovat atp...
peca